package com.py.outbound.service;

import java.util.Date;
import java.util.List;

import com.py.outbound.domain.DateBeginEnd;
import com.py.outbound.domain.StatisticsDate;
import com.py.outbound.domain.WhOutbound;
import org.apache.ibatis.annotations.Param;

/**
 * 出库管理Service接口
 * 
 * @author ruoyi
 * @date 2024-12-16
 */
public interface IWhOutboundService 
{

    /**
     * 代办事项（代执行）
     */
    public List<WhOutbound> selectExecute();


    /**
     * 代表事项（待审核）
     */
    public List<WhOutbound>selectToExamine();

    /**
     * 概况
     */
    public List<WhOutbound> selectOverview(Date time);

    /**
     * 出库排名
     */
    public List<WhOutbound>selectWhOutboundRanking();


    /**
     * 出库统计
     */
    public StatisticsDate selectWhOutboundStatistics(DateBeginEnd dateBeginEnd);

    /**
     * 查询出库管理
     * 
     * @param outboundId 出库管理主键
     * @return 出库管理
     */
    public WhOutbound selectWhOutboundByOutboundId(Long outboundId);

    /**
     * 查询出库管理列表
     * 
     * @param whOutbound 出库管理
     * @return 出库管理集合
     */
    public List<WhOutbound> selectWhOutboundList(WhOutbound whOutbound);

    /**
     * 新增出库管理
     * 
     * @param whOutbound 出库管理
     * @return 结果
     */
    public int insertWhOutbound(WhOutbound whOutbound);

    /**
     * 修改出库管理
     * 
     * @param whOutbound 出库管理
     * @return 结果
     */
    public int updateWhOutbound(WhOutbound whOutbound);

    /**
     * 批量删除出库管理
     * 
     * @param outboundIds 需要删除的出库管理主键集合
     * @return 结果
     */
    public int deleteWhOutboundByOutboundIds(Long[] outboundIds);

    /**
     * 删除出库管理信息
     * 
     * @param outboundId 出库管理主键
     * @return 结果
     */
    public int deleteWhOutboundByOutboundId(Long outboundId);

    int outboundStatus(WhOutbound outbound);
}
